<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>
<script>
  // debugger;
  function fn() {
    var a = 10;
    // debugger;

    function b() {
      // debugger;
      console.log(a);
      return 1;
    }
    b();
  }

  // fn() =>  b()   函数嵌套执行时,只有当内层函数执行完毕,外层函数才会跟着结束
  // fn();  




  // function fn(){
  //     var a = 10;
  //     function b(){
  //         console.log(a); // 10
  //         return 1;
  //     }
  //     return b();  // 1   调用函数b 并将函数执行的结果 作为fn函数的返回值
  // }

  // // fn() =>  b()   函数嵌套执行时,只有当内层函数执行完毕,外层函数才会跟着结束
  // var result = fn(); 
  // console.log(result);





  function fn() {
    var a = 10;

    function f1() {
      var b = 20;

      function f2() {
        var c = a + b;  // 30
        return c; // 30
      }

      return f2(); // 30  调用函数f2 并将函数执行的结果 作为f1函数的返回值
    }

    return f1();
  }

  // fn() =>  f1() => f2()   
  // 1. 函数嵌套执行时,只有当内层函数执行完毕,外层函数才会跟着结束
  // 2. 如果向返回内层函数执行的结果,外层函数要依次设置return值

  // 玩王者荣耀  => 6块钱的皮肤
  // 我 => 同桌A => 同桌B
  //                 ||
  // 6  <=  6  <=    6


  var result = fn();
  console.log(result);


</script>

</html>